package cn.zqh.brand.service;

import cn.zqh.bean.api.CommonResult;
import cn.zqh.bean.bo.Dydj;
import com.baomidou.mybatisplus.extension.service.IService;


/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zqh
 * @since 2023-03-01
 */
public interface OrderService extends IService<Dydj> {
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 商品购买(添加订单)
    */
    CommonResult buyACommodity(String commodityId, Integer number);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 把购物车里的商品提交订单
    */
    CommonResult submitTheorderForCart(String shopCarId);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 用户查询自己的订单
    */
    CommonResult usersQueryTheirOrders(Integer page, Integer size);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 用户查询自己订单的数量
    */
    CommonResult userGetOrdersNum();
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 店主获取店铺所有订单的数量
    */
    CommonResult storerGetOrdersNum();
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 店主分页查询自己订单
    */
    CommonResult storerGetOrdersByPage(Integer page, Integer size);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 管理员获取所有订单数量
    */
    CommonResult adminGetAllOrderNum();
     
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 管理员分页获取所有订单
    */
    CommonResult adminGetAllOrdersByPage(Integer page, Integer size);


    /**
      * @Author: zqh
      * @Date:
      * @Description: 修改订单状态
    */
    CommonResult updaTheOrderStyle(String orderId, Integer sty);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 用户取消订单
    */
    CommonResult userCancelsTheOrder(String orderId);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 订单删除
    */
    CommonResult delOrderById(String orderId);

    /**
      * @Author: zqh
      * @Date:
      * @Description: 管理员获取被删除了的订单
    */
    CommonResult adminGelDelOrdersByPage(Integer page, Integer size);
}
